package com.zbkj.admin.service;

import com.zbkj.admin.model.req.AdminBindBankcardReq;
import com.zbkj.admin.model.req.UnbindMerchantReq;
import com.zbkj.admin.model.req.UpdateBindMerchantReq;
import com.zbkj.admin.model.req.UpdateSpreaderReq;
import com.zbkj.service.model.front.req.user.UpdateUserIdentityReq;
import com.zbkj.service.model.front.req.user.UserLogoffReq;
import com.zbkj.service.model.front.req.user.UserUpdateAuthorityReq;

import javax.validation.constraints.NotNull;

public interface AdminUserV2Service {

    /**
     * 更新用户身份
     */
    void updateUserIdentity(UpdateUserIdentityReq req);

    void updateIdentity(@NotNull String employeeNo, @NotNull Integer userId, @NotNull String identity, Integer merchantId);

    /**
     * 修改分润权限
     */
    void updateShareProfit(UserUpdateAuthorityReq req);

    /**
     * 加入/取消黑名单
     */
    void userBlacklist(UserUpdateAuthorityReq req);

    /**
     * 注销
     */
    void logoff(UserLogoffReq req);

    /**
     * 修改用户绑定银行卡
     *
     * @param req req
     */
    void updateBindBank(AdminBindBankcardReq req);

    /**
     * 修改用户绑定商户
     *
     * @param req req
     */
    void unbindMerchant(UnbindMerchantReq req);

    /**
     * 修改用户绑定商户
     *
     * @param req req
     */
    void updateBindMerchant(UpdateBindMerchantReq req);

    /**
     * 用户姓名
     *
     * @param userId userId
     * @return {@link String}
     */
    String userRealName(Integer userId);

    /**
     * 用户电话
     *
     * @param userId 用户 ID
     * @return {@link String}
     */
    String userPhone(Integer userId);

    /**
     * 用户银行卡号码
     *
     * @param userId 用户 ID
     * @return {@link String}
     */
    String bankcardNumber(Integer userId);
}
